linux命令下jq的用法(curl 格式化输出json 字符串) |
您所在的位置:网站首页 › curl 打印json中的某个字段 › linux命令下jq的用法(curl 格式化输出json 字符串) |
文章目录
一、什么是jq命令1. jq安装2. jq命令的格式从json文件 对象数组中取出一组特定的属性的值从json文件 对象数组中取出一组特定的属性的值,并排除null值格式化输出json 字符串
一、什么是jq命令
官网下载: https://stedolan.github.io/jq/download/ jq可以对json数据进行分片、过滤、映射和转换,和sed、awk、grep等命令一样,都可以让你轻松地把玩文本。它能轻松地把你拥有的数据转换成你期望的格式,而且需要写的程序通常也比你期望的更加简短。 jq是用C编写,没有运行时依赖,所以几乎可以运行在任何系统上。预编译的二进制文件可以直接在Linux、OS X和windows系统上运行,当然在linux和OS X系统你需要赋与其可执行权限;在linux系统中也可以直接用yum安装。 jq常用在从json中解析出过滤出自己想要的属性值、格式化json字符串输出。 1. jq安装centos yum安装 yum install jqUbuntu可以直接用apt安装 sudo apt-get install jq 2. jq命令的格式jq [options] filter [files] options: –version:输出jq的版本信息并退出 –slurp/-s:读入整个输入流到一个数组。 –raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。 –null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。 –compact-output /-c:使输出紧凑,而不是把每一个JSON对象输出在一行。 –colour-output / -C:打开颜色显示 –monochrome-output / -M:关闭颜色显示 –ascii-output /-a:指定输出格式为ASCII –raw-output /-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号) filter: . : 默认输出 .foo: 输出指定属性,foo代表属性。 .[foo] :输出指定数组元素。foo代表数组下标。 .[]:输出指定数组中全部元素 , :指定多个属性作为过滤条件时,用逗号分隔 | : 将指定的数组元素中的某个属性作为过滤条件 files: JOSN格式文件。 从json文件 对象数组中取出一组特定的属性的值举例: 从json文件 对象数组中取出一组特定的属性的值。 [root@VM_0_14_centos ~]# jq -r '.[].rustc_target_feature' < "./rustc-target-features-optimized.json" +adx +sha +sse2 +avx2 +avx +sse4.2 +sse4.1 [root@VM_0_14_centos ~]#rustc-target-features-optimized.json文件内容: [ { "rustc_target_feature": "+adx", "check_cpu_for_feature": "adx" }, { "rustc_target_feature": "+sha", "check_cpu_for_feature": null }, { "rustc_target_feature": "+sse2", "check_cpu_for_feature": "sse2" }, { "rustc_target_feature": "+avx2", "check_cpu_for_feature": "avx2" }, { "rustc_target_feature": "+avx", "check_cpu_for_feature": "avx" }, { "rustc_target_feature": "+sse4.2", "check_cpu_for_feature": "sse4_2" }, { "rustc_target_feature": "+sse4.1", "check_cpu_for_feature": "sse4_1" } ]在shell 脚本 中,我们可以执行结果 复制给某个变量。例如: optimized_release_rustc_target_features=$(jq -r '.[].rustc_target_feature' |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |